package com.android.camera.one.v2;

import com.android.camera.async.Observable;
import com.android.camera.one.v2.camera2proxy.ImageProxy;
import com.android.camera.one.v2.camera2proxy.TotalCaptureResultProxy;
import com.android.camera.one.v2.core.RequestBuilder;
import com.android.camera.one.v2.imagesaver.MetadataImage;
import com.android.camera.one.v2.sharedimagereader.imagedistributor.ImageStream;
import com.android.camera.one.v2.sharedimagereader.metadatasynchronizer.MetadataPool;

import android.hardware.camera2.CameraAccessException;

public interface IReprocessExcutor {
	
	public interface ReprocessCallback {
		public void onReprocessBegin();
		public void onReprocessRequest(RequestBuilder nRequestBuilder);
		public void onReprocessEnd(boolean success);
	}
	
	public RequestBuilder createReprocessRequest(ImageProxy imageProxy, 
			TotalCaptureResultProxy totalCaptureResultProxy) throws CameraAccessException;
	
	public Observable<Integer> provideAvailableImageCount();
	
	public MetadataImage getNext();
}
